Integrated circuit and electronic systems designers use circuit simulators to simulate how their transistor-level circuits will behave in response to time-based inputs, for example realistic radio signals, analog signals, or digital signals. Timing conditions and requirements associated with or dependent on signal propagation within a circuit can be computationally expensive to simulate for complicated circuits. In such instances, circuit behavior can take hours or days to simulate.
In view of the extended length of time that some simulations require, designers generally start a simulation and periodically monitor the simulation as it progresses. For instance, a designer can monitor simulation log files to ensure that the simulation is progressing reasonably, or can view simulation output waveforms including signals representative of a circuit's inputs, outputs, or internal node signals. As used herein, “waveform” refers to both a series of discrete data points output by a simulator and representative of a simulation of a circuit, and to a curve fit to such a series of discrete points displayed by a waveform viewer. By monitoring simulation conditions, timing, and behavior, a designer can determine the success or usefulness of a simulation prior to the end of the simulation, allowing the designer to halt unsuccessful simulations early, saving time and processing resources that would otherwise be required to finish the simulation.
Upon the completion of a simulation, a designer can view the waveforms and/or specific measurements defined before the simulation, and can post-process waveforms to create custom figures, such as signal-to-noise ratio or oscillation frequency representations of the waveforms. Designers can also review a corresponding simulation log file that includes information about the circuit, simulation settings, simulation warnings and error messages, simulation runtime information, and simulator recommendations to improve simulation accuracy and/or performance in subsequent simulations (for instance, simulating the same circuit with different simulation settings).
Designers generally run many simulations of slightly different versions of a circuit as they make changes to improve the design, and as they re-simulate a circuit under different operating, environmental, and process conditions. Currently, designers must develop familiarity with the simulation of a circuit and its derivatives under various conditions over time in order to tune the simulator's performance and to debug any issues related to the simulator-circuit interaction. Such an approach is both inefficient and ineffective. Standard simulation outputs do not provide designers an easy way to correlate simulation output measurements and waveforms with simulator performance. Such information would enable a designer to determine how long a simulation will take, to identify portions of the simulation that run efficiently or inefficiently, to identify simulation bottlenecks, and as a result, save simulation time and resources by improving simulation performance.